<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <input type="text">
    <script>
        let inp = document.querySelector('input')
        // let t = null
        // inp.oninput = function () {

        //     if (t !== null) {
        //         clearTimeout(t)

        //     }
        //     t = setTimeout(() => {
        //         console.log(this.value);
        //     }, 500);
        // }
        //封装
        function debounce(fn, delay) {
            let t = null
            return function () {
                if (t != null) {
                    clearTimeout(t)
                }
                t = setTimeout(() => {
                    fn.call(this)
                }, delay);

            }
        }
        inp.oninput = debounce(
            function () {
                console.log(this.value);
            }, 500
        )
    </script>
</body>

</html>